package com.iisigroup.adrclient.service;

import java.util.List;

import javax.swing.JTextArea;

import com.iisigroup.adrclient.vo.StreetBlockVO;

/**
 * 街廓的Service介面
 * @author Ebi
 * @since 2015/01/13
 */
public interface StreetBlockService {
	
	/**
	 * 讀取檔案
	 * @param url 檔案位置
	 * @param encoding 編碼
	 * @return List<StreetBlockVO>
	 */
	public List<StreetBlockVO> readFile(String url, String encoding);
	
	/**
	 * 將字串拆解出需要的資料，存入StreetBlockVO回傳
	 * @param line 字串
	 * @return StreetBlockVO
	 */
	public StreetBlockVO stripLine(String line);
	
	/**
	 * 依街廓排序
	 * @param list List<StreetBlockVO>
	 * @param type 以何種為界{1: 市(鄉鎮區), 2: 里(村), 3: 鄰}, StreetBlockVO有常數可使用
	 */
	public void sort(List<StreetBlockVO> list, Integer type);
	
	/**
	 * 寫出檔案
	 * @param list List<StreetBlockVO>
	 * @param url 檔案位置
	 * @param encoding 編碼
	 * @param type 以何種為界{1: 市(鄉鎮區), 2: 里(村), 3: 鄰}, StreetBlockVO有常數可使用
	 * @param addCommon 是否要加上分隔符號
	 */
	public void output(List<StreetBlockVO> list, String url, String encoding, Integer type, JTextArea console, Boolean addCommon);
	
	/**
	 * 比較檔案相同筆數
	 * @param leftUrl 比較對象位置
	 * @param rightUrl 產出資料位置
	 * @param encoding 編碼
	 * @param type 以何種為界{1: 市(鄉鎮區), 2: 里(村), 3: 鄰}, StreetBlockVO有常數可使用
	 * @return 比較結果
	 */
	public String validate(String leftUrl, String rightUrl, String encoding, Integer type);
	
}
